package com.corn.turorial.spring.config;

import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.binder.MeterBinder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author : Jim Wu
 * @version 1.0
 * @function :
 * @since : 2021/2/4 15:26
 */
@Configuration
public class MyConfiguration {


    /**
     * 通过 MeterBinder 中的 MeterRegistry 注册一些需要用到的Metrics工具 比如Counter Gauge工具
     * 在需要使用到这些工具的时候 @Autowire 注入MeterRegistry 调用registry 的API 获取到注册的Meter 进行使用
     * 此时访问 /metrics/{name} 就可以获取到
     * 也可以自己实现 io.micrometer.core.instrument.Meter 接口自定义
     *
     * @return
     */
    @Bean
    public MeterBinder myMeter() {
        return register -> {
            Counter.builder("myCounter").description("test my counter").baseUnit("次").tag("tag1", "v1").register(register);
        };
    }
}
